home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / epistat.arc / DATA-ONE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-10-28  |  10.9 KB  |  240 lines

  1. 1  REM               STATISTICAL DATA ENTRY PROGRAM
  2. 2  REM             Written by Tracy L. Gustafson, M.D.
  3. 3  REM            Round Rock, Texas. Version 2.1, 1983
  4. 5  DEF SEG=&H40
  5. 6  A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20
  6. 7  DEF SEG: WIDTH 80: SCREEN 0,0,0: COLOR 7,0,1
  7. 20  LOCATE ,,7,7 : A=0: KEY OFF: FOR Z=1 TO 10: KEY Z,"": NEXT
  8. 25  CLEAR ,,1024: OPTION BASE 1: DEFINT A-C,N,T,Z: DEFSTR D
  9. 30  SCREEN ,,0,0: CLS: PRINT TAB(16);"  KEY";STRING$(32,205);"CLOSE"
  10. 32  PRINT TAB(16);"  OPEN STATISTICAL DATA ENTRY PROGRAM OPEN"
  11. 40  PRINT TAB(16);"KEYTHENLOAD              with              SCREENTHENTHENCLOSE"
  12. 45  PRINT TAB(16);"OPEN MEAN, MEDIAN AND STANDARD DEVIATION OPEN"
  13. 47  PRINT TAB(16);"SCREEN";STRING$(37,205);"LOAD"
  14. 50  PRINT: PRINT :PRINT TAB(23);"1.) INITIAL DATA ENTRY"
  15. 60  PRINT: PRINT TAB(23);"2.) APPEND DATA"
  16. 70  PRINT: PRINT TAB(23);"3.) EDIT DATA"
  17. 80  PRINT: PRINT TAB(23);"4.) PRINT DATA"
  18. 90  PRINT: PRINT TAB(23);"5.) SAVE DATA TO DISK"
  19. 100  PRINT: PRINT TAB(23);"6.) LOAD DATA FROM DISK"
  20. 110  PRINT :PRINT TAB(23);"7.) EXIT PROGRAM": PRINT
  21. 120  PRINT TAB(17);:INPUT "Enter number of your choice:    ",ASUB
  22. 130  IF ABS(ASUB-4)>3.1 THEN BEEP: GOTO 120
  23. 140  ON ASUB GOTO 300,600,700,800,1000,1100,1200
  24. 150  COLOR 0,7: LOCATE 25,42: PRINT "KEY F2 = NO DATA";: LOCATE 25,62: PRINT "KEY F10 = STOP";: COLOR 7,0: LOCATE AC,1
  25. 160  PRINT "Sample Name = ";: IF APND=1 THEN PRINT N$(1) ELSE INPUT "",N$(1)
  26. 180  FOR T=13 TO 78 STEP 13: C=C+1: DC=STR$(C): PRINT RIGHT$(DC,LEN(DC)-1)+": ";
  27. 190  INPUT;"",D(1,C): IF D(1,C)="" THEN 235
  28. 200  VC=VAL(D(1,C)): T(1)=T(1)+1: X(1)=X(1)+VC: X2(1)=X2(1)+VC*VC
  29. 210  FOR Z=1 TO T(1)-1: VX=VAL(D(1,CS(1,Z))): IF VX<=VC THEN 220
  30. 215  FOR TZ=T(1) TO Z+1 STEP -1: CS(1,TZ)=CS(1,TZ-1): NEXT: GOTO 230
  31. 220  NEXT Z
  32. 230  CS(1,Z)=C
  33. 235  A$=INKEY$: IF A$="" THEN 235 ELSE IF A$=CHR$(13) THEN 240 ELSE IF LEN(A$)=2 THEN AI=ASC(RIGHT$(A$,1)): IF AI=68 THEN 245 ELSE IF AI=60 THEN 242 ELSE 235 ELSE 235
  34. 240  IF D(1,C)="" THEN BEEP: GOTO 190
  35. 242  PRINT TAB(T): NEXT T: PRINT: GOTO 180
  36. 245  AC=CSRLIN: LOCATE 25,40: COLOR 7,0: PRINT TAB(79)
  37. 247  IF AC>22 THEN PRINT: PRINT: LOCATE 24,1 ELSE LOCATE AC+2,1
  38. 248  IF T(1)<2 THEN PRINT TAB(15);"Sample too small to evaluate.": GOTO 280
  39. 250  N=T(1): SD(1)=SQR((X2(1)-X(1)*X(1)/N)/(N-1))
  40. 260  IF N MOD 2=0 THEN MD(1)=(VAL(D(1,CS(1,N/2)))+VAL(D(1,CS(1,N/2+1))))*0.5 ELSE MD(1)=VAL(D(1,CS(1,N/2+0.5)))
  41. 270  PRINT TAB(5);"TOTAL =";N;TAB(27);"MEAN =";X(1)/N;TAB(55);"MEDIAN =";MD(1)
  42. 275  PRINT: PRINT TAB(20);"STANDARD DEVIATION =";SD(1)
  43. 280  PRINT: PRINT TAB(19);"Press any key to return to menu:"
  44. 290  A$=INKEY$: IF A$="" THEN 290 ELSE 30
  45. 300  CLEAR ,,1024: OPTION BASE 1: DEFINT A-C,N,T,Z: DEFSTR D
  46. 302  PRINT TAB(6);: INPUT "How many sample groups would you like to enter? (1 to 28)   ",A: IF A<1 OR A>28 THEN BEEP: GOTO 302
  47. 303  FOR T=0 TO INT((A-1)/7): SCREEN ,,T,0: CLS: NEXT: SCREEN ,,0
  48. 304  DIM D(A,2000/A),CS(A,2000/A),N$(A),X(A),X2(A),T(A),MD(A),SD(A)
  49. 305  C=0: FILE$="": PRINT "First NAME your sample groups, then ENTER new ";
  50. 310  PRINT "data:"
  51. 315  PRINT TAB(16);"1.) Press `RETURN' twice to continue data entry."
  52. 320  PRINT TAB(16);"2.) Press `RETURN', then F2 if no data for that cell."
  53. 330  PRINT TAB(16);"3.) Press `RETURN', then F10 after last data entry."
  54. 340  PRINT: AS=0: AC=CSRLIN: IF A=1 THEN 150
  55. 342  IF A>7 THEN GOSUB 346: IF A>14 THEN GOSUB 346: IF A>21 THEN GOSUB 346
  56. 344  A2=A: GOSUB 347: GOTO 350
  57. 346  A2=AS*7+7
  58. 347  A1=AS*7+1: SCREEN ,,AS,0: LOCATE AC,1: AS=AS+1
  59. 348  FOR T=A1 TO A2: PRINT TAB((T-A1+1)*10-3);"Sample";T;: NEXT
  60. 349  COLOR 0,7: LOCATE 25,42: PRINT "KEY F2 = NO DATA";: LOCATE 25,62: PRINT "KEY F10 = STOP";: COLOR 7,0: LOCATE AC,1: RETURN
  61. 350  PRINT: AS=0: AC=CSRLIN
  62. 352  IF A>7 THEN GOSUB 355: IF A>14 THEN GOSUB 355: IF A>21 THEN GOSUB 355
  63. 354  A2=A: GOSUB 356: PRINT: GOTO 360
  64. 355  A2=AS*7+7
  65. 356  A1=AS*7+1: IF APND=1 THEN SCREEN ,,AS,0 ELSE SCREEN ,,AS,AS
  66. 357  LOCATE AC,1: AS=AS+1: PRINT "NAME=";
  67. 358  FOR T=A1 TO A2: PRINT TAB((T-A1+1)*10-3);: IF APND=1 THEN PRINT N$(T); ELSE INPUT;"",N$(T)
  68. 359  NEXT: RETURN
  69. 360  PRINT: AS=0: AC=CSRLIN: C=C+1
  70. 362  IF A>7 THEN GOSUB 370: IF A>14 THEN GOSUB 370: IF A>21 THEN GOSUB 370
  71. 364  A2=A: GOSUB 372: GOTO 360
  72. 370  A2=AS*7+7
  73. 372  A1=AS*7+1: SCREEN ,,AS,AS: AS=AS+1: LOCATE AC,1: DC=STR$(C): PRINT RIGHT$(DC,LEN(DC)-1)+":";
  74. 375  FOR T=A1 TO A2: PRINT TAB((T-A1+1)*10-3);
  75. 380  INPUT;"", D(T,C): VC=VAL(D(T,C))
  76. 385  IF D(T,C)="" THEN 420
  77. 390  T(T)=T(T)+1: X(T)=X(T)+VC: X2(T)=X2(T)+VC*VC
  78. 400  FOR Z=1 TO T(T)-1: VX=VAL(D(T,CS(T,Z))): IF VX<=VC THEN 405
  79. 403  FOR TZ=T(T) TO Z+1 STEP -1: CS(T,TZ)=CS(T,TZ-1): NEXT: GOTO 410
  80. 405  NEXT Z
  81. 410  CS(T,Z)=C
  82. 420  A$=INKEY$: IF A$="" THEN 420 ELSE IF A$=CHR$(13) THEN 425 ELSE IF LEN(A$)=2 THEN AI=ASC(RIGHT$(A$,1)): IF AI=68 THEN 440 ELSE IF AI=60 THEN 430 ELSE 420 ELSE 420
  83. 425  IF D(T,C)="" THEN BEEP: GOTO 380
  84. 430  NEXT T: RETURN
  85. 440  SCREEN ,,0: FOR T=1 TO A: N=T(T): IF N<2 THEN 465
  86. 450  SD(T)=SQR((X2(T)-X(T)*X(T)/N)/(N-1))
  87. 460  IF N MOD 2=0 THEN MD(T)=(VAL(D(T,CS(T,N/2)))+VAL(D(T,CS(T,N/2+1))))*0.5 ELSE MD(T)=VAL(D(T,CS(T,N/2+0.5)))
  88. 465  NEXT
  89. 470  AS=0: AC=CSRLIN
  90. 472  IF A>7 THEN GOSUB 480: IF A>14 THEN GOSUB 480: IF A>21 THEN GOSUB 480
  91. 474  A2=A: GOSUB 482: GOTO 30
  92. 480  A2=AS*7+7
  93. 482  A1=AS*7+1: SCREEN ,,AS,AS: AS=AS+1: LOCATE 25,40: PRINT TAB(79)
  94. 483  IF AC>22 THEN PRINT: PRINT: LOCATE 24,1 ELSE LOCATE AC+2,1
  95. 485  PRINT "NO.";
  96. 487  FOR T=A1 TO A2: PRINT TAB((T-A1+1)*10-4);:PRINT USING "#####";T(T);: NEXT
  97. 490  PRINT: PRINT "MEAN";
  98. 500  FOR T=A1 TO A2:IF T(T)>0 THEN MN=X(T)/T(T) ELSE MN=0
  99. 505  MAB=ABS(MN):GOSUB 570:PRINT TAB((T-A1+1)*10-4);:PRINT USING P$;MN;:NEXT
  100. 510  PRINT: PRINT "MED";
  101. 520  FOR T=A1 TO A2: MAB=ABS(MD(T)): GOSUB 570
  102. 525  PRINT TAB((T-A1+1)*10-4);:PRINT USING P$;MD(T);: NEXT
  103. 530  PRINT: PRINT "SDEV";
  104. 540  FOR T=A1 TO A2: MAB=SD(T): GOSUB 570
  105. 545  PRINT TAB((T-A1+1)*10-4);:PRINT USING P$;SD(T);: NEXT
  106. 547  PRINT: PRINT: IF A2<A THEN PRINT TAB(20);"Press `P' to view next page,"
  107. 550  PRINT TAB(17);"Press space bar to return to menu:"
  108. 560  A$=INKEY$: IF A$="" THEN 560 ELSE IF A$="P" OR A$="p" THEN RETURN ELSE IF A$=CHR$(32) THEN 30 ELSE BEEP: GOTO 560
  109. 570  IF MAB>9999 THEN P$="#######.#" ELSE IF MAB>99 THEN P$="#####.###" ELSE IF MAB>=10 THEN P$="###.#####" ELSE P$="##.######"
  110. 575  RETURN
  111. 600  FOR T=1 TO INT((A-1)/7): SCREEN ,,T,0: CLS: NEXT: SCREEN ,,0: CLS
  112. 605  PRINT TAB(33);"APPEND DATA": PRINT TAB(33);STRING$(11,205): APND=1
  113. 610  PRINT TAB(16);"There are ";A;" sample groups in your datafile.": PRINT
  114. 620  IF A<>0 THEN 630 ELSE BEEP
  115. 623  PRINT "     You must enter a datafile from keyboard or disk before using APPEND."
  116. 625   PRINT TAB(20);"Press any key to return to main menu:"
  117. 627  A$=INKEY$: IF A$="" THEN 627 ELSE 30
  118. 630  PRINT "APPEND your ";: GOTO 310
  119. 700  SCREEN,,0,0: CLS: PRINT TAB(30);"EDITING DATA"
  120. 705  PRINT TAB(30);STRING$(12,205): PRINT: PRINT TAB(14);
  121. 710  PRINT "There are ";A; "sample groups in this datafile.": PRINT
  122. 730  PRINT TAB(7);"1.)  Enter positive record number to REPLACE that record."
  123. 732  PRINT TAB(7);"2.)  Enter negative record number to DELETE that record."
  124. 735  PRINT TAB(7);"3.)  Enter F10 for Sample group to terminate EDIT session."
  125. 740  PRINT: PRINT "Sample group";TAB(20);"Record #"; TAB(40);"New value": PRINT
  126. 745  KEY 10,"99"+CHR$(13): AC=CSRLIN: LOCATE 25,62: COLOR 0,7: PRINT "KEY F10 = STOP";: COLOR 7,0: LOCATE AC,1
  127. 750  F=0: PRINT TAB(6);: INPUT;"",B: IF B=99 THEN 794
  128. 755  IF B>A OR B=0 THEN BEEP: GOTO 750
  129. 760  PRINT TAB(23);: INPUT;"",BR: IF ABS(BR)>C OR BR=0 THEN BEEP: GOTO 760
  130. 765  IF BR<0 THEN F=1: BR= -BR: IF D(B,BR)="" THEN 750 ELSE 770
  131. 768  PRINT TAB(41);: INPUT "",NV$: VN=VAL(NV$)
  132. 769  IF D(B,BR)="" THEN T(B)=T(B)+1: GOTO 785
  133. 770  VC=VAL(D(B,BR)): X(B)=X(B)-VC: X2(B)=X2(B)-VC*VC
  134. 775  FOR Z=1 TO T(B)-1: IF CS(B,Z)<>BR THEN 778
  135. 777  FOR TZ=Z TO T(B)-1: CS(B,TZ)=CS(B,TZ+1): NEXT: GOTO 780
  136. 778  NEXT Z
  137. 780  IF F=1 THEN D(B,BR)="": T(B)=T(B)-1: GOTO 750
  138. 785  D(B,BR)=NV$: X(B)=X(B)+VN: X2(B)=X2(B)+VN*VN
  139. 790  FOR Z=1 TO T(B)-1: VX=VAL(D(B,CS(B,Z))): IF VX<=VN THEN 792
  140. 791  FOR TZ=T(B) TO Z+1 STEP -1: CS(B,TZ)=CS(B,TZ-1): NEXT: GOTO 793
  141. 792  NEXT Z
  142. 793  CS(B,Z)=BR: GOTO 750
  143. 794  LOCATE 25,60: PRINT TAB(79);: KEY 10,""
  144. 795  FOR T=1 TO A: N=T(T): IF N<2 THEN 798
  145. 797  SD(T)=SQR((X2(T)-X(T)*X(T)/N)/(N-1))
  146. 798  IF N MOD 2=0 THEN MD(T)=(VAL(D(T,CS(T,N/2)))+VAL(D(T,CS(T,N/2+1))))*0.5 ELSE MD(T)=VAL(D(T,CS(T,N/2+0.5)))
  147. 799  NEXT: GOTO 30
  148. 800  CLS: PRINT TAB(25);"PRINT DATAFILE ";FILE$
  149. 802  ALN=LEN(FILE$)+15: PRINT TAB(25);STRING$(ALN,205): PRINT
  150. 805  INPUT " Do you want the DATAFILE printout SORTED or in INPUT ORDER? (S or I)  ",A$
  151. 806  IF A$="i" OR A$="I" THEN BSRT=0: GOTO 810 ELSE IF A$="s" OR A$="S" THEN BSRT=1 ELSE BEEP: GOTO 805
  152. 808  IF A>1 THEN PRINT: PRINT TAB(12);: INPUT "Which sample number do you wish to SORT by?   ",NS: IF NS>A THEN BEEP: GOTO 808
  153. 810  PRINT: PRINT TAB(5);: INPUT "Do you want a printout of data on SCREEN or PRINTER? (S or P)   ",A$
  154. 815  IF A$="P" OR A$="p" THEN PO$="LPT1:" ELSE IF A$="S" OR A$="s" THEN PO$="SCRN:": FOR T=0 TO INT((A-1)/7): SCREEN ,,T,0: CLS: NEXT: SCREEN ,,0: GOTO 830 ELSE BEEP: GOTO 810
  155. 820  PRINT: PRINT TAB(23); "Be sure paper is in printer.": ON ERROR GOTO 1280
  156. 823  PRINT :PRINT TAB(24); "Press any key when ready:"
  157. 825  A$=INKEY$: IF A$="" THEN 825
  158. 830  OPEN PO$ FOR OUTPUT AS #1
  159. 835  IF A>1 THEN 885 ELSE IF A=0 THEN BEEP: PRINT: PRINT TAB(18);"There is no data in this datafile.": GOTO 880
  160. 838  PRINT #1, TAB(28);"DATAFILE ";FILE$: PRINT #1,
  161. 840  PRINT #1,"Sample Name = ";N$(1): PRINT #1,: TB=1: IF BSRT=1 THEN 860
  162. 845  FOR Z=1 TO C: DC=STR$(Z): PRINT #1,TAB(TB);RIGHT$(DC,LEN(DC)-1)+": ";D(1,Z);
  163. 850  TB=TB+13: IF TB>70 THEN TB=1: PRINT #1,
  164. 855  NEXT: GOTO 870
  165. 860  FOR Z=1 TO T(1): CP=CS(1,Z): DC=STR$(CP): PRINT #1,TAB(TB);RIGHT$(DC,LEN(DC)-1)+": ";D(1,CP);
  166. 862  TB=TB+13: IF TB>70 THEN TB=1: PRINT #1,
  167. 865  NEXT
  168. 870  PRINT #1,:PRINT #1,:PRINT #1,TAB(5);"TOTAL =";T(1);TAB(26);"MEAN =";X(1)/T(1);TAB(55);"MEDIAN =";MD(1)
  169. 875  PRINT #1,: PRINT #1,TAB(20);"STANDARD DEVIATION =";SD(1): CLOSE #1
  170. 880  PRINT: PRINT: PRINT TAB(19);"Press any key to return to menu:"
  171. 882  A$=INKEY$: IF A$="" THEN 882 ELSE 30
  172. 885  AS=0: AC=CSRLIN: IF A>7 THEN GOSUB 888: IF A>14 THEN GOSUB 888:IF A>21 THEN GOSUB 888
  173. 886  A2=A: GOSUB 889: CLOSE #1: GOTO 30
  174. 888  A2=AS*7+7
  175. 889  A1=AS*7+1: IF PO$="SCRN:" THEN SCREEN,,AS,AS: LOCATE AC,1
  176. 890  PRINT #1,TAB(28);"DATAFILE ";FILE$: PRINT #1,: AS=AS+1
  177. 892  FOR T=A1 TO A2: PRINT #1,TAB((T-A1+1)*10-3);"Sample";T;: NEXT: PRINT #1,
  178. 893  FOR T=A1 TO A2: PRINT #1,TAB((T-A1+1)*10-3);N$(T);:NEXT:PRINT #1,:PRINT #1,
  179. 895  IF BSRT=1 THEN 905
  180. 900  FOR Z=1 TO C: DC=STR$(Z): PRINT #1,RIGHT$(DC,LEN(DC)-1)+":";
  181. 902  FOR T=A1 TO A2: PRINT #1,TAB((T-A1+1)*10-3);D(T,Z);: NEXT
  182. 904  PRINT #1,: NEXT: GOTO 915
  183. 905  FOR Z=1 TO T(NS): CP=CS(NS,Z): DC=STR$(CP): PRINT #1,RIGHT$(DC,LEN(DC)-1)+":";
  184. 907  FOR T=A1 TO A2: PRINT #1,TAB((T-A1+1)*10-3);D(T,CP);: NEXT
  185. 910  PRINT #1,: NEXT
  186. 915  PRINT #1,: PRINT #1, "NO.";: P$="#####"
  187. 917  FOR T=A1 TO A2: PRINT #1,TAB((T-A1+1)*10-4);:PRINT #1,USING P$;T(T);: NEXT
  188. 920  PRINT #1,: PRINT #1, "MEAN";
  189. 930  FOR T=A1 TO A2:IF T(T)>0 THEN MN=X(T)/T(T) ELSE MN=0
  190. 935  MAB=ABS(MN):GOSUB 570:PRINT #1,TAB((T-A1+1)*10-4);:PRINT #1,USING P$;MN;:NEXT
  191. 940  PRINT #1,: PRINT #1, "MED";
  192. 950  FOR T=A1 TO A2: MAB=ABS(MD(T)): GOSUB 570
  193. 955  PRINT #1,TAB((T-A1+1)*10-4);: PRINT #1,USING P$;MD(T);: NEXT
  194. 960  PRINT #1,:PRINT #1, "SDEV";
  195. 970  FOR T=A1 TO A2: MAB=SD(T): GOSUB 570
  196. 972  PRINT #1,TAB((T-A1+1)*10-4);: PRINT #1,USING P$;SD(T);: NEXT
  197. 975  PRINT #1,: PRINT: IF A2=A THEN 980
  198. 978  IF PO$="LPT1:" THEN PRINT "Change paper in printer, then press `P' to print next page of data:" ELSE PRINT TAB(19);"Press `P' to print next page of data,"
  199. 980  PRINT TAB(20);"Press space bar to return to menu:"
  200. 990  A$=INKEY$: IF A$="" THEN 990 ELSE IF A$="p" OR A$="P" THEN RETURN ELSE IF A$=CHR$(32) THEN CLOSE #1: GOTO 30 ELSE BEEP: GOTO 990
  201. 1000  CLS: PRINT TAB(28);"SAVING DATA TO DISK": PRINT TAB(28);STRING$(19,205)
  202. 1010  ON ERROR GOTO 1250
  203. 1020  PRINT: PRINT TAB(13);: INPUT "What name should I use to save this datafile?  ", FILE$
  204. 1030  OPEN FILE$ FOR OUTPUT AS #1
  205. 1035  WRITE #1, A,C: FOR T=1 TO A: WRITE #1, T(T): NEXT
  206. 1040  FOR T=1 TO A: FOR Z=1 TO C : WRITE #1, D(T,Z): NEXT: NEXT
  207. 1050  FOR T=1 TO A: FOR Z=1 TO T(T): WRITE #1, CS(T,Z): NEXT: NEXT
  208. 1060  FOR T=1 TO A: WRITE #1, N$(T),X(T),X2(T),MD(T),SD(T): NEXT: CLOSE #1
  209. 1070  PRINT :PRINT :PRINT TAB(20); "Your data has been saved in "; FILE$
  210. 1080  PRINT :PRINT TAB(20);"Press any key to return to main menu:"
  211. 1090  A$=INKEY$: IF A$="" THEN 1090 ELSE 30
  212. 1100  CLS:PRINT TAB(26);"LOADING DATA FROM DISK": PRINT TAB(26);STRING$(22,205)
  213. 1110  CLEAR ,,1024: OPTION BASE 1: DEFINT A-C,N,T,Z: DEFSTR D
  214. 1115  ON ERROR GOTO 1230
  215. 1120  PRINT: PRINT TAB(17);:INPUT "What is the name of your datafile?  ", FILE$
  216. 1130  OPEN FILE$ FOR INPUT AS #1: INPUT #1,A,C
  217. 1135  DIM D(A,2000/A),CS(A,2000/A),T(A),N$(A),X(A),X2(A),MD(A),SD(A)
  218. 1138  FOR T=1 TO A: INPUT #1,T(T): NEXT
  219. 1140  FOR T=1 TO A: FOR Z=1 TO C: INPUT #1, D(T,Z): NEXT: NEXT
  220. 1150  FOR T=1 TO A: FOR Z=1 TO T(T): INPUT #1, CS(T,Z): NEXT: NEXT
  221. 1160  FOR T=1 TO A: INPUT #1, N$(T),X(T),X2(T),MD(T),SD(T): NEXT: CLOSE #1
  222. 1170  PRINT :PRINT :PRINT TAB(20); FILE$;" has been loaded from disk."
  223. 1180  PRINT :PRINT TAB(19);"Press any key to return to main menu:"
  224. 1190  A$=INKEY$: IF A$="" THEN 1190 ELSE 30
  225. 1200  PRINT TAB(7);:INPUT "Have you saved your current data to disk? (Y or N)    ",A$
  226. 1210  IF A$<>"y" AND A$<>"Y" THEN 30
  227. 1220  END
  228. 1230  BEEP: PRINT: IF ERL=1130 AND ERR=53 THEN PRINT TAB(13); "I cannot find a file by that name on drive "; ELSE 1300
  229. 1235  IF MID$(FILE$,2,1)=":" THEN DR$=LEFT$(FILE$,2) ELSE DR$="A:"
  230. 1240  PRINT DR$: PRINT "Your files are:": FILES DR$+"*.*": RESUME 1120
  231. 1250  BEEP: PRINT: IF ERL<>1030 THEN 1300
  232. 1255  IF ERR=61 OR ERR=67 THEN PRINT "That disk is full.  Change disks and try again."
  233. 1260  IF ERR=64 OR ERR=52 THEN PRINT "That is not a valid FILE NAME.  Please change name."
  234. 1265  IF ERR=70 THEN PRINT "That disk is write-protected.  Put your data on a different disk."
  235. 1270  IF ERR=71 THEN PRINT "That disk is not ready.  Check drive and try again."
  236. 1275  RESUME 1020
  237. 1280  BEEP: IF ERL<>838 THEN 1300
  238. 1285  IF ERR=27 OR ERR=25 THEN PRINT TAB(10);"The printer is not ready.  Check before proceeding.": CLOSE #1: RESUME 823
  239. 1300  ON ERROR GOTO 0
  240.